c# WPF SVG 文件的引用(SharpVectors) |
您所在的位置:网站首页 › facebook symbol svg › c# WPF SVG 文件的引用(SharpVectors) |
阿里巴巴矢量图标库提供了大量的 SVG 图标:https://www.iconfont.cn/ 但是 WPF 本身不支持 SVG 格式的文件。
方法一:如果对图片的颜色没有要求,那么可以在下载图片时选择:复制 SVG ,然后将文本中的 Path 路径提取出来,多个路径之间用空格隔开。这种方法只能调节图像的前景色和背景色。
原 SVG 文本: XAML 代码: 有时美工导出的 SVG 文本是大量的路径的拼接,而且这些路径不是 Path ,而是 Rect,Ellipse 这些规则形状。这就需要美工在导出 SVG 前建立复合路径。 (PS 参考:https://jingyan.baidu.com/article/9113f81b24e19a2b3214c7f6.html) (GIMP 参考:https://stackoverflow.com/questions/11529470/is-there-a-tool-to-create-svg-paths-from-an-svg-file) (网上看到有人使用 InKscape 直接可以转 XAML,但是笔者没有成功过。) 注意事项:WPF 默认会将多个路径中的相同部分进行相减操作。如果SVG文件的路径有重合部分,上面的方法绘制的图形会缺少部分路径。需要使用WPF中的 CombinedGeometry 来处理多段路径(GeometryGroup同样会进行相减操作)。 原 SVG 文本: XAML代码: 方法二:使用 nuget 安装 sharpvectors 包: Install-Package SharpVectors -Version 1.0.0 在调试时走了一点弯路,后来看到了这篇问答:http://www.jiajianhudong.com/question/778215.html 。 总之要注意两点:1.使用 Source="pack://application:,,,/1.svg" 这种方法来调用 svg 文件,这样才能正确的调用资源。 2. svg 文件的属性默认是内容,务必改为 Resource,然后一定要重新生成项目再运行。
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |